import { loginAPI, sendCodeAPI } from "../../apis/index"
import Variable from "../../constants/index"

// pages/login/login.ts
Page({

  /**
   * 页面的初始数据
   */
  data: {
    mobile: '',
    mobileCheck: '',
    code: '',
    codeCheck: '',
    count: 60
  },
  checkMobile() {
    if (!this.data.mobile) {
      this.setData({
        mobileCheck: '请输入手机号'
      })
    } else if (!new RegExp(/^1[3-9]\d{9}$/).test(this.data.mobile)) {
      this.setData({
        mobileCheck: '手机号格式错误'
      })
    } else {
      this.setData({
        mobileCheck: ''
      })
    }
  },
  checkCode() {
    if (!this.data.code) {
      this.setData({
        codeCheck: '请输入验证码'
      })
    } else if (!new RegExp(/^\d{6}$/).test(this.data.code)) {
      this.setData({
        codeCheck: '验证码6个数字'
      })
    } else {
      this.setData({
        codeCheck: ''
      })
    }
  },
  timer: 0,
  beginCount() {
    this.timer = setInterval(() => {
      if (this.data.count === 0) {
        clearInterval(this.timer)
        this.setData({
          count: 60
        })
        return
      }
      this.setData({
        count: this.data.count - 1
      })
    }, 1000)
  },
  async sendCode() {
    if (new RegExp(/^1[3-9]\d{9}$/).test(this.data.mobile)) {
      await sendCodeAPI({ mobile: this.data.mobile })
      this.setData({
        count: this.data.count - 1
      }, () => {
        this.beginCount()
      })
      wx.showToast({ title: '验证码发送成功' })
    } else {
      wx.showToast({
        title: '手机号不正确',
        icon: 'error'
      })
    }

  },
  async login() {
    if (new RegExp(/^1[3-9]\d{9}$/).test(this.data.mobile) && new RegExp(/^\d{6}$/).test(this.data.code)) {
      const res = await loginAPI({ mobile: this.data.mobile, code: this.data.code })
      wx.showToast({ title: '登录成功' })
      wx.setStorageSync(Variable.TOKEN_KEY, res.token)
      wx.setStorageSync(Variable.MOBILE_KEY, this.data.mobile)
      wx.switchTab({
        url: '/pages/mine/mine'
      })
      // wx.navigateBack()
    } else {
      wx.showToast({ title: '参数不合法', icon: 'error' })
    }

  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad() {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})